home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 January / macformat-020.iso / Shareware City / Developers / OutOfPhase1.01Source / OutOfPhase Folder / AlgoWaveTableList.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-10-01  |  5.9 KB  |  144 lines  |  [TEXT/KAHL]

  1. /* AlgoWaveTableList.h */
  2.  
  3. #ifndef Included_AlgoWaveTableList_h
  4. #define Included_AlgoWaveTableList_h
  5.  
  6. /* AlgoWaveTableList module depends on */
  7. /* MiscInfo.h */
  8. /* Audit */
  9. /* Debug */
  10. /* Definitions */
  11. /* Screen */
  12. /* EventLoop */
  13. /* StringList */
  14. /* Array */
  15. /* Memory */
  16. /* Alert */
  17. /* DataMunging */
  18. /* AlgoWaveTableObject */
  19. /* MainWindowStuff */
  20. /* BufferedFileInput */
  21. /* BufferedFileOutput */
  22. /* Files */
  23. /* Scrap */
  24.  
  25. #include "Screen.h"
  26. #include "EventLoop.h"
  27. #include "MainWindowStuff.h"
  28.  
  29. struct AlgoWaveTableListRec;
  30. typedef struct AlgoWaveTableListRec AlgoWaveTableListRec;
  31.  
  32. /* forward declarations */
  33. struct MainWindowRec;
  34. struct CodeCenterRec;
  35. struct AlgoWaveTableObjectRec;
  36. struct BufferedInputRec;
  37. struct BufferedOutputRec;
  38. struct FileType;
  39.  
  40. /* create a new algorithmic wave table list */
  41. AlgoWaveTableListRec*    NewAlgoWaveTableList(struct MainWindowRec* MainWindow,
  42.                                             struct CodeCenterRec* CodeCenter, WinType* ScreenID,
  43.                                             OrdType XLoc, OrdType YLoc, OrdType Width, OrdType Height);
  44.  
  45. /* delete the algorithmic wave table list and all of the wave tables it contains */
  46. void                                DisposeAlgoWaveTableList(AlgoWaveTableListRec* AlgoWaveTableList);
  47.  
  48. /* change the location of the algorithmic wave table list in the window */
  49. void                                SetAlgoWaveTableListLocation(AlgoWaveTableListRec* AlgoWaveTableList,
  50.                                             OrdType XLoc, OrdType YLoc, OrdType Width, OrdType Height);
  51.  
  52. /* redraw the list */
  53. void                                AlgoWaveTableListRedraw(AlgoWaveTableListRec* AlgoWaveTableList);
  54.  
  55. /* see if the specified coordinates falls inside the wave table list rectangle */
  56. MyBoolean                        AlgoWaveTableListHitTest(AlgoWaveTableListRec* AlgoWaveTableList,
  57.                                             OrdType XLoc, OrdType YLoc);
  58.  
  59. /* handle a mouse down event for the algorithmic wave table list */
  60. void                                AlgoWaveTableListDoMouseDown(AlgoWaveTableListRec* AlgoWaveTableList,
  61.                                             OrdType XLoc, OrdType YLoc, ModifierFlags Modifiers);
  62.  
  63. /* called when the window becomes active */
  64. void                                AlgoWaveTableListBecomeActive(AlgoWaveTableListRec* AlgoWaveTableList);
  65.  
  66. /* called when the window becomes inactive */
  67. void                                AlgoWaveTableListBecomeInactive(AlgoWaveTableListRec* AlgoWaveTableList);
  68.  
  69. /* called when a selection is made in another list, so that this list */
  70. /* is deselected */
  71. void                                AlgoWaveTableListDeselect(AlgoWaveTableListRec* AlgoWaveTableList);
  72.  
  73. /* check to see if there is a selection in this list */
  74. MyBoolean                        AlgoWaveTableListIsThereSelection(AlgoWaveTableListRec* AlgoWaveTableList);
  75.  
  76. /* check to see if any of the algorithmic wave tables contained in this list need */
  77. /* to be saved */
  78. MyBoolean                        DoesAlgoWaveTableListNeedToBeSaved(AlgoWaveTableListRec* AlgoWaveTableList);
  79.  
  80. /* open an edit window for the selected algorithmic wave table */
  81. void                                AlgoWaveTableListOpenSelection(AlgoWaveTableListRec* AlgoWaveTableList);
  82.  
  83. /* create a new algorithmic wave table and open a window for it */
  84. void                                AlgoWaveTableListNewAlgoWaveTable(AlgoWaveTableListRec* AlgoWaveTableList);
  85.  
  86. /* delete the selected algorithmic wave table */
  87. void                                AlgoWaveTableListDeleteSelection(AlgoWaveTableListRec* AlgoWaveTableList);
  88.  
  89. /* delete the explicitly specified algorithmic wave table */
  90. void                                AlgoWaveTableListDeleteAlgoWaveTable(AlgoWaveTableListRec* AlgoWaveTableList,
  91.                                             struct AlgoWaveTableObjectRec* TheAlgoWaveTable);
  92.  
  93. /* the name of a algorithmic wave table has changed, so the name in the scrolling */
  94. /* list must also be changed */
  95. void                                AlgoWaveTableListAlgoWaveTableNameChanged(AlgoWaveTableListRec* AlgoWaveTableList,
  96.                                             struct AlgoWaveTableObjectRec* TheAlgoWaveTable);
  97.  
  98. /* look for a specified algorithmic wave table.  returns NIL if not found.  the name is */
  99. /* NOT null terminated */
  100. struct AlgoWaveTableObjectRec*    AlgoWaveTableListLookupNamedAlgoWaveTable(
  101.                                             AlgoWaveTableListRec* AlgoWaveTableList, char* Name);
  102.  
  103. /* remove all data arrays for all algorithmic wave tables */
  104. void                                AlgoWaveTableListUnbuildAll(AlgoWaveTableListRec* AlgoWaveTableList);
  105.  
  106. /* build all algorithmic wave tables.  returns True if successful. */
  107. MyBoolean                        AlgoWaveTableListMakeUpToDate(AlgoWaveTableListRec* AlgoWaveTableList);
  108.  
  109. /* the document's name has changed, so we need to update the windows */
  110. void                                AlgoWaveTableListGlobalNameChange(AlgoWaveTableListRec*
  111.                                             AlgoWaveTableList, char* NewFilename);
  112.  
  113. /* read algorithmic wave table objects from a file.  returns True if successful. */
  114. FileLoadingErrors        AlgoWaveTableListReadData(AlgoWaveTableListRec* AlgoWaveTableList,
  115.                                             struct BufferedInputRec* Input);
  116.  
  117. /* write algorithmic wave table objects to a file.  returns True if successful. */
  118. FileLoadingErrors        AlgoWaveTableListWriteData(AlgoWaveTableListRec* AlgoWaveTableList,
  119.                                             struct BufferedOutputRec* Output);
  120.  
  121. /* after a file has been saved, this is called to mark all objects as not modified. */
  122. void                                AlgoWaveTableListMarkAllObjectsSaved(
  123.                                             AlgoWaveTableListRec* AlgoWaveTableList);
  124.  
  125. /* copy the selected object in the list to the clipboard.  return False if failed. */
  126. MyBoolean                        AlgoWaveTableListCopyObject(AlgoWaveTableListRec* AlgoWaveTableList);
  127.  
  128. /* try to paste the clipboard in as an algorithmic wave table object.  returns False if */
  129. /* it failed or the clipboard did not contain an algorithmic wave table object. */
  130. MyBoolean                        AlgoWaveTableListPasteObject(AlgoWaveTableListRec* AlgoWaveTableList);
  131.  
  132. /* try to paste the algorithmic wave table object in from the file */
  133. MyBoolean                        AlgoWaveTableListPasteFromFile(AlgoWaveTableListRec* AlgoWaveTableList,
  134.                                             struct FileType* File);
  135.  
  136. /* find out how many algorithmic wave tables there are in this list */
  137. long                                AlgoWaveTableListHowMany(AlgoWaveTableListRec* AlgoWaveTableList);
  138.  
  139. /* get an indexed algorithmic wave tables from the list */
  140. struct AlgoWaveTableObjectRec*    AlgoWaveTableListGetIndexedAlgoWaveTable(
  141.                                             AlgoWaveTableListRec* AlgoWaveTableList, long Index);
  142.  
  143. #endif
  144.